 //
//  WBStatusListViewModel.swift
//  WeiBoApp
//
//  Created by James on 2017/6/25.
//  Copyright © 2017年 James. All rights reserved.
//

import Foundation

 /**
  -如果类需要使用KVC 或者字典转模型框架 设置对象值，类就需要继承NSObject
  - 如果类只是包装了一些代码逻辑（写了一些函数），可以不用任何父类  好处：更加轻量级
  */
 
 class WBStatusListViewModel {
    
    lazy var statusList = [WBStatusViewModel]()

    /// 加载微博数据列表
    ///
    ///   - pullup: 是否上拉
    /// - Parameter completion: 完成回调  请求是否成功
    func loadStauts(pullup:Bool,completion:@escaping (_ isSuccess:Bool)->())  {
        let since_id = pullup ? 0 : (statusList.first?.status.id ?? 0)
        
        let max_id = pullup ? (statusList.last?.status.id ?? 0) : 0
        
        WBNetWorkManger.shared.statusList(since_id: since_id,max_id: max_id) { (list, ret) in
            //0.判断收成功
            if !ret {
                completion(false)
                return
            }
            //1.定义结果可变数组
            var array = [WBStatusViewModel]()
            //2.遍历服务器返回的字典数组，字典转模型
            for dict in list ?? [] {
                //1)创建微博模型
                guard let model = WBStatus.yy_model(with: dict) else{
                    continue   //创建模型失败
                }
                
                //2)使用‘微博’模型 创建‘微博视图’模型
                array.append(WBStatusViewModel(model: model))
                
            }
            
            print(array)
            //拼接数据
            //下拉刷新
            self.statusList = pullup ? (array + self.statusList):(self.statusList+array)
            completion(ret)
        }
    }
 }
